package com.yx.changdao.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yx.changdao.common.entity.SysPermission;

import java.util.List;
import java.util.Map;

/**
 * @Title: SysPermissionService
 * @Description: 系统权限服务
 * @Auther: Zhangjiashun
 * @Version: 1.0
 * @create 2019/11/6 11:55
 */
public interface SysPermissionService extends IService<SysPermission> {
    /**
     * 根据权限id获取权限
     *
     * @param permissionId 权限id
     * @return 权限
     */
    SysPermission getPermission(String permissionId);

    /**
     * 添加权限
     *
     * @param permissionId   权限id
     * @param permissionName 权限名
     * @return 添加后的权限
     */
    SysPermission addPermission(String permissionId, String permissionName);

    /**
     * 刪除权限
     *
     * @param permissionId 权限id
     * @return 是否删除成功
     */
    Boolean delPermission(String permissionId);

    /**
     * 刪除权限
     *
     * @param permission 权限
     * @return 是否删除成功
     */
    Boolean delPermission(SysPermission permission);

    /**
     * 获取所有权限
     *
     * @return 权限列表
     */
    List<SysPermission> getAllPermissions();

    /**
     * 按权限描述前缀分组获取权限列表
     *
     * @param wrapper 条件
     * @return 权限描述和权限。
     */
    Map<String, List<SysPermission>> permissionToMap(QueryWrapper<SysPermission> wrapper);
}
